package com.xdcplus.web.service.wip;

import com.xdcplus.mp.service.BaseService;
import com.xdcplus.pager.vo.PageVO;
import com.xdcplus.web.common.pojo.dto.wip.WipMarkingBoxDTO;
import com.xdcplus.web.common.pojo.dto.wip.WipMarkingPrdFilterDTO;
import com.xdcplus.web.common.pojo.entity.wip.WipMarkingBox;
import com.xdcplus.web.common.pojo.vo.wip.WipMarkingBoxVO;
import com.xdcplus.web.common.pojo.vo.wip.WipMarkingPrdDetailVO;

import java.util.List;


/**
 *
 * 打标单片表(WipMarkingPrd)表服务接口层
 *
 * @author Devin.sang
 * @since 2023-05-15 22:05:44
 *
 */
public interface WipMarkingBoxService extends BaseService<WipMarkingBox, WipMarkingBox, WipMarkingBoxVO> {

    /**
     * 添加打标单片表(WipMarkingPrd)
     *
     * @param wipMarkingBoxDTO 打标单片表(WipMarkingPrdDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveWipMarkingPrd(WipMarkingBoxDTO wipMarkingBoxDTO);

    /**
     * 修改打标单片表(WipMarkingPrd)
     *
     * @param wipMarkingBoxDTO 打标单片表(WipMarkingPrdDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean updateWipMarkingPrd(WipMarkingBoxDTO wipMarkingBoxDTO);

    /**
     * 批量保存或更新打标单片表(WipMarkingPrd)
     *
     * @param wipMarkingBoxList 打标单片表(WipMarkingPrdList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatch(List<WipMarkingBox> wipMarkingBoxList);

    /**
     * 批量保存或更新打标单片表(WipMarkingPrdDTOList)
     *
     * @param wipMarkingBoxDTOList 打标单片表(WipMarkingPrdDTOList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatchByDTOList(List<WipMarkingBoxDTO> wipMarkingBoxDTOList);

    /**
     * 删除打标单片表(WipMarkingPrd)
     *
     * @param id 打标单片表(WipMarkingPrd)主键
     * @return {@link Boolean} 是否成功
     */
    Boolean deleteWipMarkingPrdLogical(Long id);
    
    Boolean deleteWipMarkingPrdByIds(String ids);

    /**
     * 查询打标单片表(WipMarkingPrd)
     *
     * @param wipMarkingPrdFilterDTO 过程状态过滤DTO
     * @return {@link PageVO< WipMarkingBoxVO >} 状态信息
     */
    List<WipMarkingBoxVO> queryWipMarkingPrdVOList(WipMarkingPrdFilterDTO wipMarkingPrdFilterDTO);

    /**
     * 查询打标单片表(WipMarkingPrd)
     *
     * @param wipMarkingPrdFilterDTO 过程状态过滤DTO
     * @return {@link PageVO< WipMarkingBoxVO >} 状态信息
     */
    PageVO<WipMarkingBoxVO> queryWipMarkingPrd(WipMarkingPrdFilterDTO wipMarkingPrdFilterDTO);

    /**
     * 查询一个
     *
     * @param id 打标单片表(WipMarkingPrd)主键
     * @return {@link WipMarkingBoxVO} 打标单片表(WipMarkingPrd)信息
     */
    WipMarkingBoxVO queryWipMarkingPrdById(Long id);
    

}
